package com.lms.collection.list;

import java.util.*;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

/**
 * @Author: 李孟帅
 * @CreateTime: 2020-05-19 07:19
 * @Description: ${Description}
 */
public class CollectionDemo {
    public static void main(String[] args) {
        Collection<Number> collection = new ArrayList<>();
        boolean add = collection.add(1); //确保此集合包含指定的元素（可选操作）。
        collection.clear();//从此集合中删除所有元素（可选操作）。
        boolean b = collection.addAll(Arrays.asList(2, 3, 4, 5, 6, 7, 8, 9));//将指定集合中的所有元素添加到此集合（可选操作）。
        boolean empty = collection.isEmpty();//如果此集合不包含元素，则返回 true 。
        boolean contains = collection.contains(2);//如果此集合包含指定的元素，则返回 true 。
        Iterator<Number> iterator = collection.iterator();//返回此集合中的元素的迭代器。
        boolean remove = collection.remove(3);//从该集合中删除指定元素的单个实例（如果存在）（可选操作）。
        boolean b1 = collection.removeAll(Arrays.asList(4, 5));//删除指定集合中包含的所有此集合的元素（可选操作）。
        boolean b2 = collection.retainAll(Arrays.asList(6, 7, 8));//仅保留此集合中包含在指定集合中的元素（可选操作）。
        int size = collection.size();//返回此集合中的元素数。
        Object[] objects = collection.toArray();//返回一个包含此集合中所有元素的数组。
        Integer[] integers = collection.toArray(new Integer[0]);
        System.out.println(add);
        System.out.println(b);
        System.out.println(empty);
        System.out.println(contains);
        System.out.println(remove);
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(size);
        Stream.of(objects).forEach(n -> System.out.println(n));
        Stream.of(integers).forEach(n -> System.out.println(n));
        System.out.println("-======");
        Stream<Number> stream = collection.stream();//返回以此集合作为源的顺序 Stream
        stream.map(number -> number + "dd").forEach(s -> System.out.println(s));
        Stream<Number> numberStream = collection.parallelStream();//返回可能并行的 Stream与此集合作为其来源。
        boolean b3 = collection.removeIf(number -> (int) number > 6);//删除满足给定谓词的此集合的所有元素。
        Stream<Number> stream1 = StreamSupport.stream(collection.spliterator(), false);//spliterator()创建一个Spliterator在这个集合中的元素
        stream1.forEach(number -> System.out.println(number));


    }

}
